ddns-scripts: fix unefficent sh script
authorAnsuel Smith <[email protected]>
Thu, 24 May 2018 01:36:38 +0000 (03:36 +0200)
committerAnsuel Smith <[email protected]>
Sat, 2 Jun 2018 16:04:16 +0000 (18:04 +0200)
Currently this 3 variable are used only 1 time in the sh script and cause 10s of delay for them to load... move them to load only if it's required by the command. This also fix luci-app-ddns delay problem derived by calling dns_lucihelper (that use tdns_functions to load data) for the version.

Signed-off-by: Ansuel Smith <[email protected]>
net/ddns-scripts/Makefile
net/ddns-scripts/files/dynamic_dns_functions.sh
net/ddns-scripts/files/update_cloudflare_com_v4.sh
net/ddns-scripts/files/update_godaddy_com_v1.sh

index 792a2ea92dbcb8e0f61a30d20e3c25048f643cfe..5487bf60dbbf08498d8294d0ae3b78d172a327cb 100755 (executable)
@@ -12,7 +12,7 @@ PKG_NAME:=ddns-scripts
 PKG_VERSION:=2.7.7
 # Release == build
 # increase on changes of services files or tld_names.dat
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <[email protected]>
index c944fc2aa347bd35c74898b2a757a90fd053a90f..845cc2b003a5274c02d0573f6ad8722962530d3f 100755 (executable)
@@ -72,21 +72,17 @@ KNOT_HOST=$(which khost)
 DRILL=$(which drill)
 HOSTIP=$(which hostip)
 NSLOOKUP=$(which nslookup)
-NSLOOKUP_MUSL=$($(which nslookup) localhost 2>&1 | grep -F "(null)")   # not empty busybox compiled with musl
 
 # Transfer Programs
 WGET=$(which wget)
 WGET_SSL=$(which wget-ssl)
 
 CURL=$(which curl)
-# CURL_SSL not empty then SSL support available
-CURL_SSL=$($(which curl) -V 2>/dev/null | grep "Protocols:" | grep -F "https")
+
 # CURL_PROXY not empty then Proxy support available
 CURL_PROXY=$(find /lib /usr/lib -name libcurl.so* -exec strings {} 2>/dev/null \; | grep -im1 "all_proxy")
 
 UCLIENT_FETCH=$(which uclient-fetch)
-# UCLIENT_FETCH_SSL not empty then SSL support available
-UCLIENT_FETCH_SSL=$(find /lib /usr/lib -name libustream-ssl.so* 2>/dev/null)
 
 # Global configuration settings
 # allow NON-public IP's
@@ -723,6 +719,8 @@ do_transfer() {
        # 2nd choice is cURL IPv4/IPv6/HTTPS
        # libcurl might be compiled without Proxy or HTTPS Support
        elif [ -n "$CURL" ]; then
+               # CURL_SSL not empty then SSL support available
+               CURL_SSL=$($(which curl) -V 2>/dev/null | grep "Protocols:" | grep -F "https")
                __PROG="$CURL -RsS -o $DATFILE --stderr $ERRFILE"
                # check HTTPS support
                [ -z "$CURL_SSL" -a $use_https -eq 1 ] && \
@@ -765,6 +763,8 @@ do_transfer() {
 
        # uclient-fetch possibly with ssl support if /lib/libustream-ssl.so installed
        elif [ -n "$UCLIENT_FETCH" ]; then
+               # UCLIENT_FETCH_SSL not empty then SSL support available
+               UCLIENT_FETCH_SSL=$(find /lib /usr/lib -name libustream-ssl.so* 2>/dev/null)
                __PROG="$UCLIENT_FETCH -q -O $DATFILE"
                # force network/ip not supported
                [ -n "$__BINDIP" ] && \
@@ -1108,6 +1108,7 @@ get_registered_ip() {
                __RUNPROG="$__PROG $lookup_host >$DATFILE 2>$ERRFILE"
                __PROG="hostip"
        elif [ -n "$NSLOOKUP" ]; then   # last use BusyBox nslookup
+               NSLOOKUP_MUSL=$($(which nslookup) localhost 2>&1 | grep -F "(null)")    # not empty busybox compiled with musl
                [ $force_dnstcp -ne 0 ] && \
                        write_log 14 "Busybox nslookup - no support for 'DNS over TCP'"
                [ -n "$NSLOOKUP_MUSL" -a -n "$dns_server" ] && \
index 0c77e8b2bba27d0f2ca7e094b0f20acca12147f6..1a800d28602eaddba890185eb45a9524e6fb1d75 100755 (executable)
@@ -20,7 +20,7 @@
 #
 
 # check parameters
-[ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
 [ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
 [ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
 [ $use_https -eq 0 ] && use_https=1    # force HTTPS
index 9845d20a0abbc124ec7f30a3f0ab03357747cd95..b8d527ca671fc92fa810050fc53432e6a4b625d9 100755 (executable)
@@ -18,7 +18,7 @@
 #
 
 # check parameters
-[ -z "$CURL_SSL" ] && write_log 14 "GoDaddy communication require cURL with SSL support. Please install"
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "GoDaddy communication require cURL with SSL support. Please install"
 [ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
 [ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
 [ $use_https -eq 0 ] && use_https=1    # force HTTPS